package priv.conceit.sc.hoxton.common.entity.common.web.dto;

import com.fasterxml.jackson.annotation.JsonProperty;
import lombok.Data;

import java.util.ArrayList;
import java.util.List;

/**
 * sc-hoxton 请求日志dto
 *
 * @author Conceit
 * @since 1.0.0, 2020/12/11
 */
@Data
public class ReqLogDTO {

	private String ip;

	/**
	 * 请求类型get,post
	 */
	@JsonProperty("请求类型")
	private String httpMethod;


	private String uri;

	/**
	 * 请求开始时间
	 */
	@JsonProperty("请求开始时间")
	private String startTime;

	/**
	 * 请求结束时间
	 */
	@JsonProperty("请求结束时间")
	private String endTime;

	/**
	 * 执行时长 单位毫秒
	 */
	@JsonProperty("执行时长")
	private String executeDuration;

	/**
	 * 响应执行的类以及方法
	 */
	@JsonProperty("响应执行的类以及方法")
	private String reqClassAndMethod;

	/**
	 * 请求参数
	 */
	@JsonProperty("请求参数")
	private List<ReqArg> reqArgs=new ArrayList<>();

	/**
	 * 响应的用户id 如果有的话
	 */
	private Long userId;

	/**
	 * 响应的用户名 如果有的话
	 */
	private String username;

	@Data
	public  class ReqArg{
		/**
		 * 参数注解 如果有的话
		 */
		@JsonProperty("参数注解")
		private String anno;

		/**
		 * 参数名
		 */
		@JsonProperty("参数名")
		private String name;

		/**
		 * 参数类型
		 */
		@JsonProperty("参数类型")
		private String type;

		/**
		 * 参数值
		 */
		@JsonProperty("参数值")
		private Object value;


	}

}


